/***************************************************************
*  Copyright (c) 2007 by GroupMe! Team (www.groupme.net)
*  All rights reserved.
*
*  This file is part of the GroupMe! Project. Source code of 
*  this project is closed and redistribution of this code is
*  prohibited. 
*  
*  Contact: http://www.groupme.net
*
*  This copyright notice MUST APPEAR in all copies of the file!
***************************************************************/
package net.groupme.gui.rendering;

import net.groupme.model.GroupVisualization;
import net.groupme.model.Resource;
import net.groupme.model.ResourceVisualization;


/**
 * created on Apr 30, 2007
 * 
 * This interface defines methods for rendering a {@link ResourceVisualization} within
 * a {@link GroupVisualization}. In detail it offers simply a method which formats a given {@link ResourceVisualization}
 * (and thereby the {@link Resource} itself) to HTML.
 * 
 * @author Fabian Abel, <a href="mailto:abel@l3s.de">abel@l3s.de</a>
 * @author Mischa Frank, <a href="mailto:code@planetfrank.net">code@planetfrank.net</a>
 * @author last edited by: $Author: mischa $
 * 
 * @version $Revision: 1.4 $ $Date: 2007-10-31 16:03:04 $
 */
public interface Renderer {
	
	/** 
	 * This method returns a HTML-formatted string of the given {@link ResourceVisualization} instance
	 * (and thus of the referenced {@link Resource} object). In detail, the returned string is a HTML-div-tag 
	 * which has the URI of the Resource as ID. Example:
	 * <pre>
	 *   <div id="http://groupme.net/Resource#524">
	 *     ...
	 *   </div>
	 * </pre>
	 * @param resourceVisualization the {@link ResourceVisualization} of a {@link Resource} object
	 * @return HTML representation of a resource. 
	 */
	public String renderAsHTML(ResourceVisualization resourceVisualization, Integer groupWidth, Integer groupHeight, Integer zAxis);

}
